#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<stdbool.h>
#include<assert.h>
typedef int typedata;
typedef struct stack {
	typedata* a;
	int top;
	int capacity;
} ST;
void STinit(ST* p);
void STpush(ST* p, typedata x);
void STpop(ST* p);
typedata STTop(ST* p);
bool STempty(ST* p);
void swap(int* a, int* b);
void Print(int* a, int n);
void STdestroy(ST* p);
int PartSort1(int* a, int left, int right);
int PartSort2(int* a, int left, int right);
int PartSort3(int* a, int left, int right);
void QuickSort1(int* a, int left, int right);
void QuickSort2(int* a, int left, int right);
void QuickSort3(int* a, int left, int right);
void QuickSortNonR1(int* a, int left, int right);
void QuickSortNonR2(int* a, int left, int right);
void QuickSortNonR3(int* a, int left, int right);

